//@include tests/nested.c #comment
@py:
z = 2
@.

@for eflag in [0, 1]: #comment
@for vflag in [0, 1]:
@define x 2
@set y z
void pair_@(eflag)_@(vflag)(){
  @(eflag + @(vflag) + y)
  @if(eflag):
    eflag = "1";
  @;elif(vflag):
    eflag = "-1";
  @;else:
    eflag = "0";
  @.
  @if(vflag):
    y = z;
  @.
    //@test.
}
@.
@.

@macro test(x, y):
@(x + y)
@.
@test(1,2)

@env brace(x, y):
{
  @(x);
  @paste
  @(y);
  @paste r2
}
@.

some
consecutive
lines
to
see
if
I
inserted
too
much
lineno.

@env pair_func(name):
@for eflag in [0, 1]:
@for vflag in [0, 1]:
void @(name)_@(eflag)_@(vflag)(){
  @if eflag:
    @paste updatee
  @.

  @if vflag:
    @paste updatev
  @.
  @paste
}
@.
@.
@.

@pair_func("gen_pair"):
f[i] += f[j];
@;updatee:
puts("eflag is set");
@;updatev:
puts("vflag is set");
@.
